package java_DesignPattern.BehavioralPattern.MementoPattern.black_box;


/**
 * 备忘录模式(Black Box)---测试类
 */
public class Test {

    public static void main(String[] args) {
        // 创建游戏角色
        GameRole gameRole = new GameRole();
        // 显示游戏角色状态
        gameRole.showStatus();

        // 创建游戏角色状态管理者
        RoleMementoCaretaker caretaker = new RoleMementoCaretaker();
        // 备份游戏角色状态
        /*此处通过负责人角色可以拿到备忘录对象，
        通过set方法可以修改游戏角色状态,所以为白箱备忘录模式*/
        caretaker.setMemento(gameRole.backup());
        // 游戏角色状态改变
        gameRole.fight();
        // 显示游戏角色状态
        gameRole.showStatus();

        // 恢复游戏角色状态
        /*此处通过负责人角色可以拿到备忘录对象，
        通过set方法可以修改游戏角色状态,所以为白箱备忘录模式*/
        gameRole.restore(caretaker.getMemento());
        // 显示游戏角色状态
        gameRole.showStatus();
    }
}
